# tool chain for blueprint
SET(CMAKE_SYSTEM_PROCESSOR "P5p")
SET(QMC_ENV "IBMP5p" CACHE STRING "Setting envirnoments for IBM P5+")

#SET_PROPERTY(GLOBAL PROPERTY TARGET_SUPPORTS_SHARED_LIBS FALSE)

set(CMAKE_C_COMPILER  /usr/vacpp/bin/xlc_r)
set(CMAKE_CXX_COMPILER /usr/bin/mpCC_r)
set(CMAKE_Fortran_COMPILER /usr/bin/mpxlf90_r)

set(CMAKE_FIND_ROOT_PATH
    /opt/freeware
    /u/home/ac/jnkim/src/boost/src
    /u/home/ac/jnkim/build/fftw3.2/xlc64
    /u/home/ac/jnkim/src/p3dfft.2.3/fftw64_stride1
     )

SET(AIX_ARCH_FLAGS "-q64 -qarch=auto -qtune=auto -qcache=auto")
SET(AIX_CXX_COMMON_FLAGS "-qrtti=dyna -qnoeh -qsuppress=1540-1090 -qsmp=omp")
SET(AIX_OPT_FLAGS "-O3 -Q -qmaxmem=-1 -qipa=inline -qinline -qlargepage -qprefetch -qstrict -qhot -qkeyword=restrict")
SET(F_DEFINES "-WF,-P,-DESSL,-DDOUBLE_PREC,-DSTRIDE1 -qfixed=132")
SET(AIX_F_FLAGS "-O3 -Q -qmaxmem=-1 -qlargepage -qprefetch -qstrict -qhot")
#SET(AIX_OPT_FLAGS "-g -O3 -qlargepage -qprefetch -qstrict -qhot -qkeyword=restrict")
#SET(AIX_OPT_FLAGS "-g -Q -qmaxmem=-1 -qlargepage -qprefetch -qkeyword=restrict")
#SET(AIX_C_FLAGS "-qlanglvl=stdc99")

######################################################################
#set the CXX flags: arch+common + opt 
######################################################################
SET(CMAKE_CXX_FLAGS "${AIX_ARCH_FLAGS} ${AIX_CXX_COMMON_FLAGS} ${AIX_OPT_FLAGS}")
SET(CMAKE_C_FLAGS "${AIX_ARCH_FLAGS} ${AIX_OPT_FLAGS} ${AIX_C_FLAGS}")
SET(CMAKE_Fortran_FLAGS "${F_DEFINES} ${AIX_ARCH_FLAGS} ${AIX_F_FLAGS}")
SET(CMAKE_Fortran_FLAGS_RELEASE ${CMAKE_Fortran_FLAGS})

SET(CMAKE_CXX_CREATE_STATIC_LIBRARY
    "<CMAKE_AR> -X64 cr <TARGET> <LINK_FLAGS> <OBJECTS> " 
    "<CMAKE_RANLIB> <TARGET> ")

SET(CMAKE_Fortran_COMPILE_OBJECT
    "<CMAKE_Fortran_COMPILER> -o <OBJECT>  <FLAGS> -c <SOURCE>")

#SET(CMAKE_SHARED_LIBRARY_PREFIX "lib")          # lib
#SET(CMAKE_SHARED_LIBRARY_SUFFIX ".so")          # .so
#SET(CMAKE_DL_LIBS "-lld")
#
## RPATH support on AIX is called libpath.  By default the runtime
## libpath is paths specified by -L followed by /usr/lib and /lib.  In
## order to prevent the -L paths from being used we must force use of
## -Wl,-blibpath:/usr/lib:/lib whether RPATH support is on or not.
## When our own RPATH is to be added it may be inserted before the
## "always" paths.
#SET(CMAKE_PLATFORM_REQUIRED_RUNTIME_PATH /usr/lib /lib)
#SET(CMAKE_SHARED_LIBRARY_RUNTIME_C_FLAG "-Wl,-blibpath:")
#SET(CMAKE_SHARED_LIBRARY_RUNTIME_C_FLAG_SEP ":")
#
## Files named "libfoo.a" may actually be shared libraries.
#SET_PROPERTY(GLOBAL PROPERTY TARGET_ARCHIVES_MAY_BE_SHARED_LIBS 1)
#
## CXX Compiler
#IF(CMAKE_COMPILER_IS_GNUCXX) 
#  SET(CMAKE_SHARED_LIBRARY_CREATE_CXX_FLAGS "-shared -Wl,-G")       # -shared
#ELSE(CMAKE_COMPILER_IS_GNUCXX) 
#  SET(CMAKE_SHARED_LIBRARY_CREATE_CXX_FLAGS "-G -Wl,-brtl,-bnoipath")       # -shared
#  SET(CMAKE_SHARED_LIBRARY_LINK_CXX_FLAGS "-Wl,-brtl,-bnoipath,-bexpall")  # +s, flag for exe link to use shared lib
#  SET(CMAKE_SHARED_LIBRARY_CXX_FLAGS " ")
#  SET(CMAKE_SHARED_MODULE_CXX_FLAGS  " ")
#  SET (CMAKE_CXX_FLAGS_DEBUG_INIT "-g")
#  SET (CMAKE_CXX_FLAGS_RELEASE_INIT "-O -DNDEBUG") 
#  SET (CMAKE_CXX_FLAGS_MINSIZEREL_INIT "-O -DNDEBUG")
#  SET (CMAKE_CXX_FLAGS_RELWITHDEBINFO_INIT "-g")
#ENDIF(CMAKE_COMPILER_IS_GNUCXX) 
#
## C Compiler
#IF(CMAKE_COMPILER_IS_GNUCC)
#  SET(CMAKE_SHARED_LIBRARY_CREATE_C_FLAGS "-shared -Wl,-G")       # -shared
#ELSE(CMAKE_COMPILER_IS_GNUCC)
#  SET(CMAKE_SHARED_LIBRARY_CREATE_C_FLAGS "-G -Wl,-brtl,-bnoipath")  # -shared
#  SET(CMAKE_SHARED_LIBRARY_LINK_C_FLAGS "-Wl,-brtl,-bnoipath,-bexpall")  # +s, flag for exe link to use shared lib
#  SET(CMAKE_SHARED_LIBRARY_C_FLAGS " ")
#  SET(CMAKE_SHARED_MODULE_C_FLAGS  " ")
#  SET (CMAKE_C_FLAGS_DEBUG_INIT "-g")
#  SET (CMAKE_C_FLAGS_RELEASE_INIT "-O -DNDEBUG") 
#  SET (CMAKE_C_FLAGS_MINSIZEREL_INIT "-O -DNDEBUG")
#  SET (CMAKE_C_FLAGS_RELWITHDEBINFO_INIT "-g")
#ENDIF(CMAKE_COMPILER_IS_GNUCC)
#
#IF(NOT CMAKE_COMPILER_IS_GNUCC)
#  SET (CMAKE_C_CREATE_PREPROCESSED_SOURCE "<CMAKE_C_COMPILER> <DEFINES> <FLAGS> -E <SOURCE> > <PREPROCESSED_SOURCE>")
#  SET (CMAKE_C_CREATE_ASSEMBLY_SOURCE "<CMAKE_C_COMPILER> <DEFINES> <FLAGS> -S <SOURCE> -o <ASSEMBLY_SOURCE>")
#ENDIF(NOT CMAKE_COMPILER_IS_GNUCC)
#
#IF(NOT CMAKE_COMPILER_IS_GNUCXX)
#  SET(CMAKE_CXX_COMPILE_OBJECT
#    "<CMAKE_CXX_COMPILER> -+ <DEFINES> <FLAGS> -o <OBJECT> -c <SOURCE>")
#  SET (CMAKE_CXX_CREATE_PREPROCESSED_SOURCE "<CMAKE_CXX_COMPILER> <DEFINES> <FLAGS> -E <SOURCE> > <PREPROCESSED_SOURCE>")
#  SET (CMAKE_CXX_CREATE_ASSEMBLY_SOURCE "<CMAKE_CXX_COMPILER> <DEFINES> <FLAGS> -S <SOURCE> -o <ASSEMBLY_SOURCE>")
#ENDIF(NOT CMAKE_COMPILER_IS_GNUCXX)
#
#
## since .a can be a static or shared library on AIX, we can not do this.
## at some point if we wanted it, we would have to figure out if a .a is
## static or shared, then we could add this back:
#
## Initialize C link type selection flags.  These flags are used when
## building a shared library, shared module, or executable that links
## to other libraries to select whether to use the static or shared
## versions of the libraries.
##FOREACH(type SHARED_LIBRARY SHARED_MODULE EXE)
##  SET(CMAKE_${type}_LINK_STATIC_C_FLAGS "-bstatic")
##  SET(CMAKE_${type}_LINK_DYNAMIC_C_FLAGS "-bdynamic")
##ENDFOREACH(type)
#
#INCLUDE(Platform/UnixPaths)
